package com.smalluz.ad.modules.oe.result.clue;

import java.io.Serializable;
import java.util.Date;
import java.util.Map;

import com.fasterxml.jackson.annotation.JsonProperty;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;

@Data
@EqualsAndHashCode(callSuper=false)
@SuperBuilder
@AllArgsConstructor
@NoArgsConstructor
public class ApiTtClue implements Serializable{
    private static final long serialVersionUID = -855390838531472670L;

    //原始线索ID
    @JsonProperty("clue_id")
    private String clueId;

    //广告主id
    @JsonProperty("advertiser_id")
    private String advertiserId;

    @JsonProperty("advertiser_name")
    private String advertiserName;

    @JsonProperty("ad_id")
    private String adId;

    @JsonProperty("ad_name")
    private String adName;

    @JsonProperty("creative_id")
    private String creativeId;

    @JsonProperty("site_id")
    private String siteId;

    @JsonProperty("site_name")
    private String siteName;

    @JsonProperty("intention_estimation")
    private String intentionEstimation;

    @JsonProperty("external_url")
    private String externalUrl;

    /**
     * 组件类型，允许值： 0: 表单提交； 1: 在线咨询; 2: 智能电话; 3: 网页回呼; 4: 卡券; 5：抽奖
     */
    @JsonProperty("clue_type")
    private Integer clueType;

    @JsonProperty("module_name")
    private String moduleName;

    @JsonProperty("module_id")
    private String moduleId;

    @JsonProperty("create_time")
    private String createTime;

    @JsonProperty("create_time_detail")
    private Date createTimeDetail;

    @JsonProperty("date")
    private String date;

    @JsonProperty("clue_source")
    private String clueSource;

    @JsonProperty("name")
    private String name;

    @JsonProperty("telephone")
    private String telephone;

    @JsonProperty("gender")
    private Integer gender;

    @JsonProperty("age")
    private Integer age;

    @JsonProperty("email")
    private String email;

    @JsonProperty("weixin")
    private String weixin;

    @JsonProperty("qq")
    private String qq;

    @JsonProperty("province_name")
    private String provinceName;

    @JsonProperty("city_name")
    private String cityName;

    @JsonProperty("address")
    private String address;

    @JsonProperty("location")
    private String location;

    @JsonProperty("remark")
    private String remark;

    @JsonProperty("remark_dict")
    private Map<String, Object> remarkDict;

    @JsonProperty("form_remark")
    private String formRemark;

    @JsonProperty("app_name")
    private String appName;

    @JsonProperty("convert_status")
    private String convertStatus;

    @JsonProperty("req_id")
    private String reqId;

    @JsonProperty("clue_state")
    private Integer clueState;

    @JsonProperty("clue_state_name")
    private String clueStateName;

    @JsonProperty("follow_state_name")
    private String followStateName;

    @JsonProperty("country_name")
    private String countryName;

    @JsonProperty("system_tags")
    private String[] systemTags;

    @JsonProperty("tags")
    private String[] tags;

    @JsonProperty("allocation_status")
    private String allocationStatus;

    @JsonProperty("clue_owner_name")
    private String clueOwnerName;
    
    @JsonProperty("store")
    private StoreInfo store;
}
